package com.ocean.product.mapper;

import java.util.List;
import java.util.Map;

import com.ocean.product.domain.OProduct;
import com.ocean.system.domain.OZnwgSq;
import org.apache.ibatis.annotations.Param;

/**
 * 产品类别Mapper接口
 *
 * @author ocean
 * @date 2023-01-05
 */
public interface OProductMapper
{
    /**
     * 查询产品类别
     *
     * @param id 产品类别主键
     * @return 产品类别
     */
    public OProduct selectOProductById(String id);

    /**
     * 查询产品类别列表
     *
     * @param oProduct 产品类别
     * @return 产品类别集合
     */
    public List<OProduct> selectOProductList(OProduct oProduct);

    /**
     * 新增产品类别
     *
     * @param oProduct 产品类别
     * @return 结果
     */
    public int insertOProduct(OProduct oProduct);

    /**
     * 修改产品类别
     *
     * @param oProduct 产品类别
     * @return 结果
     */
    public int updateOProduct(OProduct oProduct);

    /**
     * 删除产品类别
     *
     * @param id 产品类别主键
     * @return 结果
     */
    public int deleteOProductById(String id);

    /**
     * 批量删除产品类别
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOProductByIds(String[] ids);

    List<OProduct> selectFormList(OProduct oProduct);

    List<OProduct> selectOProductsHasCheckconfig();

    List<Map> checkExpireDay();

    List<Map> checkNotUpdateProduct();

    List<Map<String,String>> selectTypeAndDeptIsOpen();

    List<Map<String, String>> selectTypeAndDeptIsOpenLoggedIn(Long deptId);

    int selectCountSql(@Param("productType") String productType,@Param("depart") String depart, @Param("oceanArea") String oceanArea, @Param("element") String element, @Param("mode") String mode, @Param("deptId") Long deptId);

    List<Map> productSql(@Param("productType") String productType,@Param("depart") String depart, @Param("oceanArea") String oceanArea, @Param("element") String element, @Param("mode") String mode, @Param("deptId") Long deptId,@Param("start") int start,@Param("size") int size);

    List<OProduct> isjc(@Param("pname")String pname);

    List<OProduct> getnamegz(@Param("pname")String pname);

    List<OProduct> selectwc();

    List<OProduct> selectFormListsms(OProduct oProduct);

    List<OZnwgSq> selectFormListsmsznwg(OZnwgSq oZnwgSq);

    List<OZnwgSq> selectFormListznwg();
}
